package org.edu.modules.stu.jis.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.edu.common.base.BaseEntity;
import java.sql.Date;
import org.hibernate.validator.constraints.Length;

import java.io.Serializable;

/**
 * entity-
 */
@TableName("ve_stu_yyproject")
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="对象", description="ve_stu_yyproject")
public class VeStuYyproject extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableField
    @ApiModelProperty(value = "预约项目对象")
        private Integer type;

    @TableField
    @ApiModelProperty(value = " 预约设备ID")
        private Integer sbId;

    @TableField
    @ApiModelProperty(value = "")
    @Length(max = 50)
        private String sbName;

    @TableField
    @ApiModelProperty(value = "预约说明")
    @Length(max = 255)
        private String yyRemark;

    @TableField
    @ApiModelProperty(value = "限制人数")
        private Integer limitNum;

    @TableField
    @ApiModelProperty(value = "开始时间")
        @JsonFormat(timezone="GMT+8",locale="zh",  pattern="yyyy-MM-dd")
        private Date statusTime;

    @TableField
    @ApiModelProperty(value = "结束时间")
        @JsonFormat(timezone="GMT+8",locale="zh",  pattern="yyyy-MM-dd")
        private Date endTime;

    @TableField
    @ApiModelProperty(value = "状态（1：启用，0：禁用）")
        private Integer status;

    @TableField
    @ApiModelProperty(value = "")
        private Integer campusId;

    @TableField
    @ApiModelProperty(value = "")
        private Integer jzId;

    @TableField
    @ApiModelProperty(value = "")
        private Integer jsId;

    @TableField
    @ApiModelProperty(value = "")
    @Length(max = 100)
        private String address;

    @TableField
    @ApiModelProperty(value = "项目负责人id")
    @Length(max = 32)
        private String projectId;

    @TableField
    @ApiModelProperty(value = "发布状态")
        private Integer isPublic;

    @TableField
    @ApiModelProperty(value = "项目负责人")
    @Length(max = 325)
        private String projectIdText;

    @TableField
    @ApiModelProperty(value = "审核人ID")
    @Length(max = 32)
        private String authPersonId;

    @TableField
    @ApiModelProperty(value = "")
    @Length(max = 255)
        private String authPersionText;

    @TableField
    @ApiModelProperty(value = "审核状态(1通过，0不通过，2未审核)")
        private Integer authStatus;

    @TableField
    @ApiModelProperty(value = "不通过原因")
    @Length(max = 255)
        private String auditReason;

    @TableField
    @ApiModelProperty(value = "预约形式（1.自主预约，2.常规时间预约）")
        private Integer yyType;
}
